/**
 * @file        configuration.hpp
 * @brief       System specific configuration provider.
 *
 * @author      Emre Turkay <emreturkay at gmail>
 * @date        Nov.20.2008
 *
 * Copyright Emre Turkay 2009
 * Distributed under the Boost Software License, Version 1.0.
 * (See accompanying file COPYRIGHT or copy at
 * http://www.boost.org/LICENSE_1_0.txt)
 */

#ifndef _GTD_CONFIGURATION_HPP_
#define _GTD_CONFIGURATION_HPP_

#include <string>

namespace gtd
{

/// Provides the system specific configuration parameters.
struct configuration
{
    /// Constructor, sets up the configuration parameters.
    configuration();

    /// Returns the name of the todo file.
    const std::string& todo_file() const;

    /// Returns the name of the done file.
    const std::string& done_file() const;

    /// Returns the path where data files are stored in.
    const std::string& path() const;

    /// Returns the name of the temporary file.
    const std::string& tmp_file() const;

    /// Returns a name for the backup file.
    std::string backup_file() const;

private:
    /// The path of the data files.
    std::string path_;
    /// The name of the todo file.
    std::string todo_file_;
    /// The name of the done file.
    std::string done_file_;
    /// The name of the temporary file.
    std::string tmp_file_;
};

} // namespace gtd

#include "configuration.ipp"

#endif // _GTD_CONFIGURATION_HPP_
